package com.gljx.web.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.gljx.web.Entity.Handle;
import com.gljx.web.Entity.Power;
import com.gljx.web.Entity.Role;

public interface PowerService {


	List<Map<String,Object>> findAllBIUser(String id,String type);
	
	Integer insertRoleByNowUser(String ids,
								String PID,
								Integer userId);
	/**
	 * 根据角色ID关联权限
	* @param ids
	* @param PID
	* @param roleId
	* @return
	* @author LiXiang  @date 2017年11月8日 上午11:43:56
	 */
	Integer insertHandleByRoleId(String ids,
								String PID,
								Integer roleId);
	/**
	 * 依据用户插入权限
	* @param ids
	* @param PID
	* @param userId
	* @return
	* @author LiXiang  @date 2017年11月9日 下午4:29:06
	 */
	Integer insertUserPower(String ids,
							String PID,
							Integer userId);
	
	/**
	 * 删除指定权限
	* @param ids
	* @param PID
	* @param roleId
	* @return
	* @author LiXiang  @date 2017年11月8日 下午1:43:30
	 */
	Integer deleteHandleByRoleId(String ids,
								 Integer roleId);
	
	/**
	 * 删除用户指定角色
	* @param ids
	* @param roleId
	* @return
	* @author LiXiang  @date 2017年11月9日 下午2:52:38
	 */
	Integer deleteRoleByUserId(String ids,
			 					Integer userId);
	
	/**
	 * 删除用户角色或特有权限
	* @param ids
	* @param PID
	* @param userId
	* @return
	* @author LiXiang  @date 2017年11月9日 下午4:55:27
	 */
	Integer deleteRoleAndPower(String ids,
							   Integer userId);
	
	
	/**
	 * 依据角色ID获取权限
	* @param PID
	* @param id
	* @return
	* @author LiXiang  @date 2017年11月8日 上午9:22:04
	 */
	List<Handle> findHandleById(String PID,Integer id,String name);
	
	public Map <String,Object > selectRoleByProject(String rows,
													String page,
													String id,	
													String name,
													String menuName
													);
	/**
	 * 权限树
	* @param id
	* @param projectId
	* @param type
	* @return
	* @author LiXiang  @date 2017年11月8日 下午5:22:36
	 */
	List<Map<String,Object>> userPowerTree(Integer id,
										   String projectId,
										   String type);
	
	/**
	 * 当前用户的所有特有权限和角色
	* @param userId
	* @param projectId
	* @return
	* @author LiXiang  @date 2017年11月9日 上午9:59:27
	 */
	List<Power> findSpowerAndRole(Integer userId,
								  String projectId);
	
	List<Power> findPowerTree(Integer userId,
			  				  String projectId);
	Map <String,Object > selectPowerByCon(String rows,
												String page,
												String handelName,		//操作名称
												String pmenuName,		//菜单类型
												Integer userId);		//用户ID
	/**
	 * 批量添加权限
	* @return
	* @author LiXiang  @date 2017年11月21日 下午3:03:41
	 */
	String InserUsersAddRoles(String userIds, String roleIds);
}
